Java Technologies উদাহরণ সহ Database Integration গাইড ও নোট

249

স্প্রিং বুট (Spring Boot) একটি শক্তিশালী ফ্রেমওয়ার্ক যা ডেটাবেস ইন্টিগ্রেশন খুব সহজ করে তোলে। ডেটাবেস ইন্টিগ্রেশন মানে হল ডেটাবেসের সাথে অ্যাপ্লিকেশনের সংযোগ স্থাপন এবং ডেটা সন্নিবেশ, আপডেট, ডিলিট এবং রিট্রিভ করার প্রক্রিয়া। স্প্রিং বুট সাধারণত JPA (Java Persistence API) বা JDBC এর মাধ্যমে ডেটাবেস ইন্টিগ্রেশন করতে ব্যবহৃত হয়। স্প্রিং বুটের সাথে সাধারণত H2, MySQL, PostgreSQL, Oracle ইত্যাদি ডেটাবেস ব্যবহার করা হয়।


ডেটাবেস ইন্টিগ্রেশন সেটআপ

স্প্রিং বুট অ্যাপ্লিকেশনে ডেটাবেস ইন্টিগ্রেশন করার জন্য কিছু স্টেপ অনুসরণ করতে হয়:

  1. ডিপেনডেন্সি যোগ করা: প্রথমে, স্প্রিং বুট অ্যাপ্লিকেশন ফাইল pom.xml বা build.gradle এ ডেটাবেসের জন্য প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হয়।
  2. ডেটাবেস কনফিগারেশন: application.properties বা application.yml ফাইলে ডেটাবেস কনফিগারেশন নির্ধারণ করতে হয়।
  3. এন্টিটি ক্লাস তৈরি: JPA ব্যবহার করলে, একটি এন্টিটি ক্লাস তৈরি করতে হয় যা ডেটাবেস টেবিলের সাথে মানানসই হবে।
  4. রেপোজিটরি তৈরি করা: ডেটাবেস অপারেশনগুলির জন্য একটি রেপোজিটরি ইন্টারফেস তৈরি করতে হয়।
  5. ডেটাবেস অপারেশন: ডেটাবেসে সন্নিবেশ, আপডেট, ডিলিট এবং রিট্রিভ করার কোড লিখতে হয়।

উদাহরণ সহ ডেটাবেস ইন্টিগ্রেশন

আমরা একটি সাধারণ স্প্রিং বুট অ্যাপ্লিকেশন তৈরি করব, যেখানে ডেটাবেসে ইউজার ডেটা সন্নিবেশ, আপডেট এবং রিট্রিভ করা হবে।


1. ডিপেনডেন্সি যোগ করা

আমরা MySQL ডেটাবেস ব্যবহার করার উদাহরণ দিচ্ছি। প্রথমে, pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- Spring Boot Starter Data JPA (Hibernate) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <!-- MySQL JDBC Driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

এখানে spring-boot-starter-data-jpa JPA সম্পর্কিত কাজের জন্য এবং mysql-connector-java MySQL ডেটাবেসের জন্য ব্যবহৃত হচ্ছে।


2. ডেটাবেস কনফিগারেশন

application.properties বা application.yml ফাইলে ডেটাবেসের কনফিগারেশন নির্ধারণ করুন।

application.properties:

# MySQL ডেটাবেস কনফিগারেশন
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=rootpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# JPA কনফিগারেশন
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

এখানে:

  • spring.datasource.url: ডেটাবেস URL (যেমন MySQL এর জন্য jdbc:mysql://localhost:3306/mydb)
  • spring.datasource.username: ডেটাবেসের ইউজারনেম
  • spring.datasource.password: ডেটাবেসের পাসওয়ার্ড
  • spring.jpa.hibernate.ddl-auto=update: এটি ডেটাবেস স্কিমা আপডেট করবে।
  • spring.jpa.show-sql=true: SQL কোয়েরি লোগ করতে সক্ষম হবে।

3. এন্টিটি ক্লাস তৈরি করা

এখন একটি User এন্টিটি ক্লাস তৈরি করব, যা ডেটাবেসের users টেবিলের সাথে সম্পর্কিত হবে।

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // Getters and Setters
}

এখানে, @Entity অ্যানোটেশনটি এই ক্লাসটিকে JPA এন্টিটি হিসাবে চিহ্নিত করে, যা ডেটাবেস টেবিলের সাথে মেলে। @Id দ্বারা প্রাথমিক কী (Primary Key) চিহ্নিত করা হয়েছে।


4. রেপোজিটরি ইন্টারফেস তৈরি করা

স্প্রিং ডেটা JPA ব্যবহার করে একটি রেপোজিটরি ইন্টারফেস তৈরি করুন, যা ডেটাবেস অপারেশন যেমন সন্নিবেশ, আপডেট, ডিলিট ইত্যাদি পরিচালনা করবে।

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // custom query methods can be added here
}

এখানে UserRepository ইন্টারফেসটি JpaRepository থেকে এক্সটেন্ড করছে, যা ডেটাবেসের উপর CRUD (Create, Read, Update, Delete) অপারেশনগুলো সহজভাবে পরিচালনা করবে।


5. সার্ভিস ক্লাস তৈরি করা

এখন একটি UserService ক্লাস তৈরি করা যাক, যা ডেটাবেস অপারেশনগুলো পরিচালনা করবে।

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public User saveUser(User user) {
        return userRepository.save(user);
    }

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

এখানে UserService ক্লাসটি UserRepository এর মাধ্যমে ডেটাবেসের উপর বিভিন্ন অপারেশন পরিচালনা করছে।


6. কন্ট্রোলার ক্লাস তৈরি করা

এখন একটি কন্ট্রোলার তৈরি করা যাক, যা ইউজারদের HTTP অনুরোধ গ্রহণ করবে এবং সেবা প্রদান করবে।

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
    }
}

এখানে, @RestController ব্যবহার করে আমরা RESTful API তৈরি করেছি, যা ইউজারের ডেটা তৈরি, পড়া এবং মুছে ফেলার কাজ করবে।


সারাংশ

স্প্রিং বুটের মাধ্যমে ডেটাবেস ইন্টিগ্রেশন খুবই সহজ। আমরা MySQL ডেটাবেস ব্যবহার করে, JPA (Hibernate) এর সাহায্যে ডেটাবেস অপারেশনগুলো খুব সহজে সম্পাদন করতে পারি। ডেটাবেস কনফিগারেশন, এন্টিটি ক্লাস, রেপোজিটরি, সার্ভিস, এবং কন্ট্রোলার তৈরি করে একটি পূর্ণাঙ্গ CRUD (Create, Read, Update, Delete) অ্যাপ্লিকেশন তৈরি করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...